 //
// Created by VictorHain on 2018/8/21.
//

#ifndef GRAPH_DENSEGRAPH_H
#define GRAPH_DENSEGRAPH_H

#include <iostream>
#include <vector>
#include <cassert>


using namespace std;

class DenseGraph {

private:
    int n, m;
    bool directed;
    vector <vector<bool >> g;

public:
    DenseGraph(int n, bool directed){
        this->n = n;
        this->m = 0;
        this->directed = directed;
        for(int i = 0; i < n; i++)
            g.push_back(vector<bool >(n, false));
    }

    ~DenseGraph(){

    }

    int V(){ return n;}
    int E(){ return m;}

    void addEdge(int v, int w){
        assert(v >= 0 && v < n);
        assert(w >= 0 && w < n);

        if (g[v][w]){
            return;
        }

        g[v][w] = true;
        if (!directed){
            g[v][w] = true;
        }
    }

    bool hasEdge(){

    }
};


#endif //GRAPH_DENSEGRAPH_H
